#ifndef __DRV_TIMER_H_
#define __DRV_TIMER_H_

#include "stm32f10x.h"

#define CP_DUTY_0       (0)       //占空比千分之一精度
#define CP_DUTY_1000    (1000)    //占空比千分之一精度
#define CP_12V_DUTY     (CP_DUTY_1000)
#define CP_0V_DUTY      (CP_DUTY_0)
#define CP_32A_DUTY     (533)       //53.3*0.6=32A

void cp_pwm_init(void);
/*******************************************************************************
* Function Name  : cp_set_duty
* Description    : 设置占空比，千分之一精度
                   占空比(Dutyon) = (CCR/ARR)1000
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void cp_duty_set(uint16_t val);
/*******************************************************************************
* Function Name  : cp_duty_get
* Description    : 获取占空比
* Input          : None
* Output         : 占空比，千分之一精度
* Return         : 0.成功，非0失败
*******************************************************************************/
uint8_t cp_duty_get(uint16_t *pDuty);
/*******************************************************************************
* Function Name  : cp_duty_to_curr
* Description    : 根据占空比计算电流
* Input          : cp_duty-占空比，千分之一精度
* Output         : 电流单位0.01A，I=cp_duty*100*0.6, cp_duty为占空比
* Return         : None
*******************************************************************************/
uint16_t cp_duty_to_curr(uint16_t cp_duty);
/*******************************************************************************
* Function Name  : cp_curr_to_duty
* Description    : 根据占空比计算电流
* Input          : curr-电流值，单位0.01A
* Output         : None
* Return         : 占空比，千分之一精度
*******************************************************************************/
uint16_t cp_curr_to_duty(uint16_t curr);
#endif
